package com.sumainfor.pc.gmio.feign;

import com.sumainfor.common.util.JsonResult;
import com.sumainfor.pc.gmio.fallback.TenantFeignFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

/**
 * @Author PuaChen
 * @Create 2019-03-05 12:01
 * 租客端
 */
@FeignClient(value = "TANGNEST-WX-TENANT", fallback = TenantFeignFallback.class)
public interface BaseTenantFeign {

    /**
     * 通过租客的ID 获得租客的信息数据
     *
     * @param tenId
     * @return
     */
    @PostMapping("/key/provider/getWxInfoByTenId")
    JsonResult getWxInfoByTenId(@RequestParam("tenId") String tenId);

    /**
     * 功能描述:
     * 根据优惠券编号和租客编号获取当前优惠券是否是当前租客的
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/4/7 16:37
     */
    @GetMapping("/key/coupons/getTenantCouCount")
    JsonResult getTenantCouCount(@RequestParam Map<String, Object> params);

    /**
     * 功能描述:
     * 根据优惠券编号和租客修改优惠券已使用
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/4/7 16:37
     */
    @PostMapping("/key/coupons/UpdateTenantCou")
    JsonResult UpdateTenantCou(@RequestBody Map<String, Object> params);

    /**
     * 查询租客信息数据
     *
     * @param params
     * @return
     */
    @PostMapping("/provider/key/tenant/financial/selectTenantInfo")
    List<Map<String, Object>> selectTenantInfo(@RequestBody Map<String, Object> params);

    /**
     * 功能描述: 
     * 获取所有的租客编号
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/5/18 10:55
     */
    @ResponseBody
    @GetMapping("/key/FeTenant/getTenantList")
    JsonResult getTenantList();



    /**
     * 根据真实姓名姓名和手机号查询
     * @author zhoucong
     * @data 2019/8/28
     * @Param
     * @return
     */
    @ResponseBody
    @GetMapping("/key/FeTenant/getTenIdPhone")
    JsonResult getTenIdPhone(@RequestParam Map<String,Object> params);


    /**
     * @Description //TODO 根据姓名和手机号模糊查询租客列表
     * @return com.sumainfor.common.util.JsonResult
     * @Param [param]
     * @Date 2019/8/29 9:49
     **/
    @ResponseBody
    @GetMapping("/tenId/query/getTenIdListByLikeNameOrPhone")
    List<String> getTenIdListByLikePhoneOrName(@RequestParam("param") String param);

    /**
     * @Description //TODO 根据姓名和手机号查询租客列表
     * @return com.sumainfor.common.util.JsonResult
     * @Param [param]
     * @Date 2019/8/29 9:49
     **/
    @ResponseBody
    @GetMapping("/tenId/query/getTenIdListByNameOrPhone")
    List<String> getTenIdListByPhoneOrName(@RequestParam("param") String param);

    @ResponseBody
    @PostMapping("/key/coupons/getTenPhone")
    JsonResult getTenPhone(@RequestBody Map<String,Object> params);
}
